package com.jrx.anytxn.investor.entity;

import com.jrx.anytxn.common.annotation.MethodType;
import com.jrx.anytxn.common.annotation.Model;
import com.jrx.anytxn.common.constant.CommonContants;

import java.math.BigDecimal;
import java.util.Date;

/**
 *  
 * 表:am_loan_account_investor_info 
 * @author Administrator 
 * @date 2020-05-18 
 */
@Model
@MethodType(CommonContants.METHOD_TYPE_UPDATE)
public class AmLoanAccountInvestorInfo {
    /**
     * 自增主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户ID
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 出资方贷款订单id
     * 表字段:investor_loan_id
     */
    private String investorLoanId;

    /**
     * 贷款订单id
     * 表字段:loan_id
     */
    private String loanId;

    /**
     * 出资方ID
     * 表字段:investor_id
     */
    private String investorId;

    /**
     * 出资方比例
     * 表字段:invertor_percentage
     */
    private BigDecimal invertorPercentage;

    /**
     * 贷款类型
     * 表字段:loan_type
     */
    private String loanType;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 渠道id
     * 表字段:channel
     */
    private String channel;

    /**
     * 贷款状态 0 = 新建; 1 = 正常; 2 = 逾期; 6 = 转分期; 7 = 提前结清; 8 = 正常结清; 9 = 取消;
     * 表字段:account_status
     */
    private String accountStatus;

    /**
     * 产品id
     * 表字段:product_id
     */
    private String productId;

    /**
     * 客户id
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 余额 当前总欠款 已抛未还本金+利息+费用
     * 表字段:curr_balance
     */
    private BigDecimal currBalance;

    /**
     * 本金余额 所有已抛未还本金
     * 表字段:principal_balance
     */
    private BigDecimal principalBalance;

    /**
     * 利息余额 所有已抛未还利息
     * 表字段:interest_balance
     */
    private BigDecimal interestBalance;

    /**
     * 罚息余额 所有已抛未还罚息
     * 表字段:penalty_balance
     */
    private BigDecimal penaltyBalance;

    /**
     * 复利余额 所有已抛未还复利
     * 表字段:compound_balance
     */
    private BigDecimal compoundBalance;

    /**
     * 服务费余额 所有已抛未还费用
     * 表字段:fee_balance
     */
    private BigDecimal feeBalance;

    /**
     * 剩余本金 所有未还本金（包含未抛部分）
     * 表字段:remain_principal
     */
    private BigDecimal remainPrincipal;

    /**
     * 计提利息 已计提未抛账利息
     * 表字段:accrued_interest
     */
    private BigDecimal accruedInterest;

    /**
     * 计提罚息 已计提未抛账罚息
     * 表字段:accrued_penalty
     */
    private BigDecimal accruedPenalty;

    /**
     * 计提复利 已计提未抛账复利
     * 表字段:accrued_compound
     */
    private BigDecimal accruedCompound;

    /**
     * 已抛期数
     * 表字段:cast_tenor
     */
    private Integer castTenor;

    /**
     * 已还期数
     * 表字段:payed_tenor
     */
    private Integer payedTenor;

    /**
     * 核销标志 0 = 否; 1 = 已核销;
     * 表字段:chargeoff_flag
     */
    private String chargeoffFlag;

    /**
     * 核销金额
     * 表字段:chargeoff_amount
     */
    private BigDecimal chargeoffAmount;

    /**
     * 核销日期
     * 表字段:chargeoff_date
     */
    private Date chargeoffDate;

    /**
     * 核销原因码
     * 表字段:chargeoff_reason_code
     */
    private String chargeoffReasonCode;

    /**
     * 停息标志 0 = 停息;1 = 正常计息;
     * 表字段:waive_interest_flag
     */
    private String waiveInterestFlag;

    /**
     * 停费标志 0 = 停费;1 = 正常计费;
     * 表字段:waive_fee_flag
     */
    private String waiveFeeFlag;

    /**
     * 代偿标识 订单是否已代偿，默认0=否;1=是;
     * 表字段:compensatory_flag
     */
    private String compensatoryFlag;

    /**
     * 债权转移标识 订单是否已债权转移，默认0=否;1=是;
     * 表字段:bal_transfer_flag
     */
    private String balTransferFlag;

    /**
     * 总代偿期数
     * 表字段:total_compensatory_tenor
     */
    private Integer totalCompensatoryTenor;

    /**
     * 连续逾期期数 当前连续逾期期数，逾期全部还清后清0
     * 表字段:continue_over_due_tenor
     */
    private Integer continueOverDueTenor;

    /**
     * 总逾期期数 累计逾期期数，还款后不减
     * 表字段:total_over_due_tenor
     */
    private Integer totalOverDueTenor;

    /**
     * 会计状态 0 = 正常; 1 = 逾期; 2 = 呆滞; 3 = 呆账; 
     * 表字段:accounting_phase
     */
    private String accountingPhase;

    /**
     * 非应计状态 0 = 应计;1 = 非应计;
     * 表字段:non_accruals_flag
     */
    private String nonAccrualsFlag;

    /**
     * 当前延滞天数 订单级逾期天数，当前逾期还款计划逾期天数最大值
     * 表字段:delq_days
     */
    private Integer delqDays;

    /**
     * 五级分类 0 = 正常; 1 = 关注; 2 = 次级; 3 = 可疑; 4 = 损失; 
     * 表字段:loan_classify
     */
    private String loanClassify;

    /**
     * 下一次还款日期
     * 表字段:next_payment_date
     */
    private Date nextPaymentDate;

    /**
     * 结清日期
     * 表字段:payoff_date
     */
    private String payoffDate;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 获取自增主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置自增主键
     * @param id 自增主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取租户ID
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租户ID
     * @param tenantId 租户ID
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取出资方贷款订单id
     * @return investorLoanId String
     */
    public String getInvestorLoanId() {
        return investorLoanId;
    }

    /**
     * 设置出资方贷款订单id
     * @param investorLoanId 出资方贷款订单id
     */
    public void setInvestorLoanId(String investorLoanId) {
        this.investorLoanId = investorLoanId;
    }

    /**
     * 获取贷款订单id
     * @return loanId String
     */
    public String getLoanId() {
        return loanId;
    }

    /**
     * 设置贷款订单id
     * @param loanId 贷款订单id
     */
    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    /**
     * 获取出资方ID
     * @return investorId String
     */
    public String getInvestorId() {
        return investorId;
    }

    /**
     * 设置出资方ID
     * @param investorId 出资方ID
     */
    public void setInvestorId(String investorId) {
        this.investorId = investorId;
    }

    /**
     * 获取出资方比例
     * @return invertorPercentage BigDecimal
     */
    public BigDecimal getInvertorPercentage() {
        return invertorPercentage;
    }

    /**
     * 设置出资方比例
     * @param invertorPercentage 出资方比例
     */
    public void setInvertorPercentage(BigDecimal invertorPercentage) {
        this.invertorPercentage = invertorPercentage;
    }

    /**
     * 获取贷款类型
     * @return loanType String
     */
    public String getLoanType() {
        return loanType;
    }

    /**
     * 设置贷款类型
     * @param loanType 贷款类型
     */
    public void setLoanType(String loanType) {
        this.loanType = loanType;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取渠道id
     * @return channel String
     */
    public String getChannel() {
        return channel;
    }

    /**
     * 设置渠道id
     * @param channel 渠道id
     */
    public void setChannel(String channel) {
        this.channel = channel;
    }

    /**
     * 获取贷款状态 0 = 新建; 1 = 正常; 2 = 逾期; 6 = 转分期; 7 = 提前结清; 8 = 正常结清; 9 = 取消;
     * @return accountStatus String
     */
    public String getAccountStatus() {
        return accountStatus;
    }

    /**
     * 设置贷款状态 0 = 新建; 1 = 正常; 2 = 逾期; 6 = 转分期; 7 = 提前结清; 8 = 正常结清; 9 = 取消;
     * @param accountStatus 贷款状态 0 = 新建; 1 = 正常; 2 = 逾期; 6 = 转分期; 7 = 提前结清; 8 = 正常结清; 9 = 取消;
     */
    public void setAccountStatus(String accountStatus) {
        this.accountStatus = accountStatus;
    }

    /**
     * 获取产品id
     * @return productId String
     */
    public String getProductId() {
        return productId;
    }

    /**
     * 设置产品id
     * @param productId 产品id
     */
    public void setProductId(String productId) {
        this.productId = productId;
    }

    /**
     * 获取客户id
     * @return customerId String
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户id
     * @param customerId 客户id
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取余额 当前总欠款 已抛未还本金+利息+费用
     * @return currBalance BigDecimal
     */
    public BigDecimal getCurrBalance() {
        return currBalance;
    }

    /**
     * 设置余额 当前总欠款 已抛未还本金+利息+费用
     * @param currBalance 余额 当前总欠款 已抛未还本金+利息+费用
     */
    public void setCurrBalance(BigDecimal currBalance) {
        this.currBalance = currBalance;
    }

    /**
     * 获取本金余额 所有已抛未还本金
     * @return principalBalance BigDecimal
     */
    public BigDecimal getPrincipalBalance() {
        return principalBalance;
    }

    /**
     * 设置本金余额 所有已抛未还本金
     * @param principalBalance 本金余额 所有已抛未还本金
     */
    public void setPrincipalBalance(BigDecimal principalBalance) {
        this.principalBalance = principalBalance;
    }

    /**
     * 获取利息余额 所有已抛未还利息
     * @return interestBalance BigDecimal
     */
    public BigDecimal getInterestBalance() {
        return interestBalance;
    }

    /**
     * 设置利息余额 所有已抛未还利息
     * @param interestBalance 利息余额 所有已抛未还利息
     */
    public void setInterestBalance(BigDecimal interestBalance) {
        this.interestBalance = interestBalance;
    }

    /**
     * 获取罚息余额 所有已抛未还罚息
     * @return penaltyBalance BigDecimal
     */
    public BigDecimal getPenaltyBalance() {
        return penaltyBalance;
    }

    /**
     * 设置罚息余额 所有已抛未还罚息
     * @param penaltyBalance 罚息余额 所有已抛未还罚息
     */
    public void setPenaltyBalance(BigDecimal penaltyBalance) {
        this.penaltyBalance = penaltyBalance;
    }

    /**
     * 获取复利余额 所有已抛未还复利
     * @return compoundBalance BigDecimal
     */
    public BigDecimal getCompoundBalance() {
        return compoundBalance;
    }

    /**
     * 设置复利余额 所有已抛未还复利
     * @param compoundBalance 复利余额 所有已抛未还复利
     */
    public void setCompoundBalance(BigDecimal compoundBalance) {
        this.compoundBalance = compoundBalance;
    }

    /**
     * 获取服务费余额 所有已抛未还费用
     * @return feeBalance BigDecimal
     */
    public BigDecimal getFeeBalance() {
        return feeBalance;
    }

    /**
     * 设置服务费余额 所有已抛未还费用
     * @param feeBalance 服务费余额 所有已抛未还费用
     */
    public void setFeeBalance(BigDecimal feeBalance) {
        this.feeBalance = feeBalance;
    }

    /**
     * 获取剩余本金 所有未还本金（包含未抛部分）
     * @return remainPrincipal BigDecimal
     */
    public BigDecimal getRemainPrincipal() {
        return remainPrincipal;
    }

    /**
     * 设置剩余本金 所有未还本金（包含未抛部分）
     * @param remainPrincipal 剩余本金 所有未还本金（包含未抛部分）
     */
    public void setRemainPrincipal(BigDecimal remainPrincipal) {
        this.remainPrincipal = remainPrincipal;
    }

    /**
     * 获取计提利息 已计提未抛账利息
     * @return accruedInterest BigDecimal
     */
    public BigDecimal getAccruedInterest() {
        return accruedInterest;
    }

    /**
     * 设置计提利息 已计提未抛账利息
     * @param accruedInterest 计提利息 已计提未抛账利息
     */
    public void setAccruedInterest(BigDecimal accruedInterest) {
        this.accruedInterest = accruedInterest;
    }

    /**
     * 获取计提罚息 已计提未抛账罚息
     * @return accruedPenalty BigDecimal
     */
    public BigDecimal getAccruedPenalty() {
        return accruedPenalty;
    }

    /**
     * 设置计提罚息 已计提未抛账罚息
     * @param accruedPenalty 计提罚息 已计提未抛账罚息
     */
    public void setAccruedPenalty(BigDecimal accruedPenalty) {
        this.accruedPenalty = accruedPenalty;
    }

    /**
     * 获取计提复利 已计提未抛账复利
     * @return accruedCompound BigDecimal
     */
    public BigDecimal getAccruedCompound() {
        return accruedCompound;
    }

    /**
     * 设置计提复利 已计提未抛账复利
     * @param accruedCompound 计提复利 已计提未抛账复利
     */
    public void setAccruedCompound(BigDecimal accruedCompound) {
        this.accruedCompound = accruedCompound;
    }

    /**
     * 获取已抛期数
     * @return castTenor Integer
     */
    public Integer getCastTenor() {
        return castTenor;
    }

    /**
     * 设置已抛期数
     * @param castTenor 已抛期数
     */
    public void setCastTenor(Integer castTenor) {
        this.castTenor = castTenor;
    }

    /**
     * 获取已还期数
     * @return payedTenor Integer
     */
    public Integer getPayedTenor() {
        return payedTenor;
    }

    /**
     * 设置已还期数
     * @param payedTenor 已还期数
     */
    public void setPayedTenor(Integer payedTenor) {
        this.payedTenor = payedTenor;
    }

    /**
     * 获取核销标志 0 = 否; 1 = 已核销;
     * @return chargeoffFlag String
     */
    public String getChargeoffFlag() {
        return chargeoffFlag;
    }

    /**
     * 设置核销标志 0 = 否; 1 = 已核销;
     * @param chargeoffFlag 核销标志 0 = 否; 1 = 已核销;
     */
    public void setChargeoffFlag(String chargeoffFlag) {
        this.chargeoffFlag = chargeoffFlag;
    }

    /**
     * 获取核销金额
     * @return chargeoffAmount BigDecimal
     */
    public BigDecimal getChargeoffAmount() {
        return chargeoffAmount;
    }

    /**
     * 设置核销金额
     * @param chargeoffAmount 核销金额
     */
    public void setChargeoffAmount(BigDecimal chargeoffAmount) {
        this.chargeoffAmount = chargeoffAmount;
    }

    /**
     * 获取核销日期
     * @return chargeoffDate Date
     */
    public Date getChargeoffDate() {
        return chargeoffDate;
    }

    /**
     * 设置核销日期
     * @param chargeoffDate 核销日期
     */
    public void setChargeoffDate(Date chargeoffDate) {
        this.chargeoffDate = chargeoffDate;
    }

    /**
     * 获取核销原因码
     * @return chargeoffReasonCode String
     */
    public String getChargeoffReasonCode() {
        return chargeoffReasonCode;
    }

    /**
     * 设置核销原因码
     * @param chargeoffReasonCode 核销原因码
     */
    public void setChargeoffReasonCode(String chargeoffReasonCode) {
        this.chargeoffReasonCode = chargeoffReasonCode;
    }

    /**
     * 获取停息标志 0 = 停息;1 = 正常计息;
     * @return waiveInterestFlag String
     */
    public String getWaiveInterestFlag() {
        return waiveInterestFlag;
    }

    /**
     * 设置停息标志 0 = 停息;1 = 正常计息;
     * @param waiveInterestFlag 停息标志 0 = 停息;1 = 正常计息;
     */
    public void setWaiveInterestFlag(String waiveInterestFlag) {
        this.waiveInterestFlag = waiveInterestFlag;
    }

    /**
     * 获取停费标志 0 = 停费;1 = 正常计费;
     * @return waiveFeeFlag String
     */
    public String getWaiveFeeFlag() {
        return waiveFeeFlag;
    }

    /**
     * 设置停费标志 0 = 停费;1 = 正常计费;
     * @param waiveFeeFlag 停费标志 0 = 停费;1 = 正常计费;
     */
    public void setWaiveFeeFlag(String waiveFeeFlag) {
        this.waiveFeeFlag = waiveFeeFlag;
    }

    /**
     * 获取代偿标识 订单是否已代偿，默认0=否;1=是;
     * @return compensatoryFlag String
     */
    public String getCompensatoryFlag() {
        return compensatoryFlag;
    }

    /**
     * 设置代偿标识 订单是否已代偿，默认0=否;1=是;
     * @param compensatoryFlag 代偿标识 订单是否已代偿，默认0=否;1=是;
     */
    public void setCompensatoryFlag(String compensatoryFlag) {
        this.compensatoryFlag = compensatoryFlag;
    }

    /**
     * 获取债权转移标识 订单是否已债权转移，默认0=否;1=是;
     * @return balTransferFlag String
     */
    public String getBalTransferFlag() {
        return balTransferFlag;
    }

    /**
     * 设置债权转移标识 订单是否已债权转移，默认0=否;1=是;
     * @param balTransferFlag 债权转移标识 订单是否已债权转移，默认0=否;1=是;
     */
    public void setBalTransferFlag(String balTransferFlag) {
        this.balTransferFlag = balTransferFlag;
    }

    /**
     * 获取总代偿期数
     * @return totalCompensatoryTenor Integer
     */
    public Integer getTotalCompensatoryTenor() {
        return totalCompensatoryTenor;
    }

    /**
     * 设置总代偿期数
     * @param totalCompensatoryTenor 总代偿期数
     */
    public void setTotalCompensatoryTenor(Integer totalCompensatoryTenor) {
        this.totalCompensatoryTenor = totalCompensatoryTenor;
    }

    /**
     * 获取连续逾期期数 当前连续逾期期数，逾期全部还清后清0
     * @return continueOverDueTenor Integer
     */
    public Integer getContinueOverDueTenor() {
        return continueOverDueTenor;
    }

    /**
     * 设置连续逾期期数 当前连续逾期期数，逾期全部还清后清0
     * @param continueOverDueTenor 连续逾期期数 当前连续逾期期数，逾期全部还清后清0
     */
    public void setContinueOverDueTenor(Integer continueOverDueTenor) {
        this.continueOverDueTenor = continueOverDueTenor;
    }

    /**
     * 获取总逾期期数 累计逾期期数，还款后不减
     * @return totalOverDueTenor Integer
     */
    public Integer getTotalOverDueTenor() {
        return totalOverDueTenor;
    }

    /**
     * 设置总逾期期数 累计逾期期数，还款后不减
     * @param totalOverDueTenor 总逾期期数 累计逾期期数，还款后不减
     */
    public void setTotalOverDueTenor(Integer totalOverDueTenor) {
        this.totalOverDueTenor = totalOverDueTenor;
    }

    /**
     * 获取会计状态 0 = 正常; 1 = 逾期; 2 = 呆滞; 3 = 呆账; 
     * @return accountingPhase String
     */
    public String getAccountingPhase() {
        return accountingPhase;
    }

    /**
     * 设置会计状态 0 = 正常; 1 = 逾期; 2 = 呆滞; 3 = 呆账; 
     * @param accountingPhase 会计状态 0 = 正常; 1 = 逾期; 2 = 呆滞; 3 = 呆账; 
     */
    public void setAccountingPhase(String accountingPhase) {
        this.accountingPhase = accountingPhase;
    }

    /**
     * 获取非应计状态 0 = 应计;1 = 非应计;
     * @return nonAccrualsFlag String
     */
    public String getNonAccrualsFlag() {
        return nonAccrualsFlag;
    }

    /**
     * 设置非应计状态 0 = 应计;1 = 非应计;
     * @param nonAccrualsFlag 非应计状态 0 = 应计;1 = 非应计;
     */
    public void setNonAccrualsFlag(String nonAccrualsFlag) {
        this.nonAccrualsFlag = nonAccrualsFlag;
    }

    /**
     * 获取当前延滞天数 订单级逾期天数，当前逾期还款计划逾期天数最大值
     * @return delqDays Integer
     */
    public Integer getDelqDays() {
        return delqDays;
    }

    /**
     * 设置当前延滞天数 订单级逾期天数，当前逾期还款计划逾期天数最大值
     * @param delqDays 当前延滞天数 订单级逾期天数，当前逾期还款计划逾期天数最大值
     */
    public void setDelqDays(Integer delqDays) {
        this.delqDays = delqDays;
    }

    /**
     * 获取五级分类 0 = 正常; 1 = 关注; 2 = 次级; 3 = 可疑; 4 = 损失; 
     * @return loanClassify String
     */
    public String getLoanClassify() {
        return loanClassify;
    }

    /**
     * 设置五级分类 0 = 正常; 1 = 关注; 2 = 次级; 3 = 可疑; 4 = 损失; 
     * @param loanClassify 五级分类 0 = 正常; 1 = 关注; 2 = 次级; 3 = 可疑; 4 = 损失; 
     */
    public void setLoanClassify(String loanClassify) {
        this.loanClassify = loanClassify;
    }

    /**
     * 获取下一次还款日期
     * @return nextPaymentDate Date
     */
    public Date getNextPaymentDate() {
        return nextPaymentDate;
    }

    /**
     * 设置下一次还款日期
     * @param nextPaymentDate 下一次还款日期
     */
    public void setNextPaymentDate(Date nextPaymentDate) {
        this.nextPaymentDate = nextPaymentDate;
    }

    /**
     * 获取结清日期
     * @return payoffDate Date
     */
    public String getPayoffDate() {
        return payoffDate;
    }

    /**
     * 设置结清日期
     * @param payoffDate 结清日期
     */
    public void setPayoffDate(String payoffDate) {
        this.payoffDate = payoffDate;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }
}